package cn.edu.tju.ldj.analytics.utils;

import java.util.Locale;

import cn.com.enorth.util.cjy.StrUtil;

/**
 * 
 * @author cjy
 * 
 *         每人必须了解，字符串工具的类
 */

public class IUtilStr {

	/**
	 * 判断一个字符串是否为空
	 * 
	 * @param s
	 * @return
	 */
	public boolean isEmpty(String s) {
		return StrUtil.isEmpty(s);
	}

	/**
	 * 将一个字符串转换为日期
	 * 
	 * @param date
	 *            日期
	 * @param format
	 *            <p>
	 *            日期格式定义如下
	 *            </p>
	 *            <p>
	 *            y 年
	 *            </p>
	 *            <p>
	 *            M 月
	 *            </p>
	 *            <p>
	 *            d 日
	 *            </p>
	 *            <p>
	 *            h 时12进制
	 *            </p>
	 *            <p>
	 *            H 时 24进制
	 *            </p>
	 *            <p>
	 *            m 分
	 *            </p>
	 *            <p>
	 *            s 秒
	 *            </p>
	 *            <p>
	 *            S 毫秒
	 *            </p>
	 * @return
	 */
	public java.util.Date strToDate(String date, String format) {
		return StrUtil.parseDate(date, format);
	}

	/**
	 * 将一个日期格式化为字符串
	 * 
	 * @param date
	 *            日期
	 * @param format
	 *            格式定义如下 </p>
	 *            <p>
	 *            y 年
	 *            </p>
	 *            <p>
	 *            M 月
	 *            </p>
	 *            <p>
	 *            d 日
	 *            </p>
	 *            <p>
	 *            h 时12进制
	 *            </p>
	 *            <p>
	 *            H 时 24进制
	 *            </p>
	 *            <p>
	 *            m 分
	 *            </p>
	 *            <p>
	 *            s 秒
	 *            </p>
	 *            <p>
	 *            S 毫秒
	 *            </p>
	 * @return
	 */
	public String formatDate(java.util.Date date, String format) {
		return StrUtil.formatDate(date, format);
	}

	/**
	 * 将sourceStr字符串中所有的oldStr替换为newStr
	 * 
	 * @param sourceStr
	 * @param oldStr
	 * @param newStr
	 * @return 替换后的字符串
	 */
	public String replaceAllStr(String sourceStr, String oldStr, String newStr) {
		return StrUtil.replaceAllStr(sourceStr, oldStr, newStr, Locale
				.getDefault());
	}

	public String objToStr(Object o) {
		if (null == o) {
			return null;
		} else if (o instanceof String) {
			return (String) o;
		} else if (o instanceof Integer) {
			return String.valueOf((Integer) o);
		} else {
			throw new java.lang.IllegalArgumentException("invalid object type:"
					+ o.getClass());
		}
	}
	
	 public String  formatDouble(double d,String format) {
		 return new java.text.DecimalFormat(format).format(d);
	 }
	  /**
     * 格式化一个浮点数
     * @param d double
     * @return String
     */
    public String  formatDouble(double d,int precision) {
    	String format="";
    	
        if (d >= 0) {
        	format="0";
        	if(precision>0){
        		format=format+".";
        	}
        } else {
        	format=".";
            
        }
        for(int i=0;i<precision;i++){
        	format=format+"0";
        }
       return formatDouble(d,format);
    }
    
	/*
	 * public String objectToStr(Object value) { if (null == value) { return "";
	 * } else if (value instanceof String) { return (String) value; } else if
	 * (value instanceof Integer || value instanceof Long || value instanceof
	 * Double) { return String.valueOf(value); } else if (value instanceof
	 * java.util.Date) { // TODO return
	 * Factory.utilStr.formatDate((java.util.Date) value, "yyyyMMdd"); } else {
	 * throw new java.lang.UnsupportedOperationException(value.getClass() +
	 * " to string"); } }
	 */
}
